git detached HEAD
こちらがとても良い資料だった。 ブランチのイメージもできる
たとえば、checkout 後にブランチが進んでしまった/戻ってしまったパターンですね。
detached HEADは、
HEADがあるbranchのHEADを指してるわけではなく、特定のコミットを指している状況
そのコミットがどのブランチにいるかは?
$ git rev-parse HEAD
2r4sdk122...みたいに、そのコミットIDがでてくる
$ git name-rev 2r4sdk122...
で、そのコミットがされたブランチ名がでてくる。
なので、そのブランチ名で、checkoutすれば、 HEADがブランチに乗った通常の状態に戻れる。
が、ブランチがたくさんあって、どれが本筋のブランチ?
masterが通常の命名則での本筋ブランチだが、なぜかこういうときは、ブランチたくさんでmasterは遅れてる。
$ git log
しても、HEADがいるところのブランチの履歴(親は分かるけど、兄弟ブランチ?は見えない)
$ git log --all
でよい。
shellの履歴をみれば、branch移動履歴がわかるが、、そのloginのものなら。